package com.ksyun.alert.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ksyun.alert.vo.AlertRecordDetailsVO;
import com.ksyun.alert.dto.AlertRulesPageQueryDTO;
import com.ksyun.alert.entity.AlertRulesDO;
import com.ksyun.alert.result.PageResult;

import java.util.List;


/**
 * 告警规则表接口层
 * @author 蓝
 * @date: 2024-05-02
 */
public interface AlertRulesService extends IService<AlertRulesDO> {
    /**
     * 获取所有告警规则
     */
    List<AlertRulesDO> getRules();

    /**
     * 获取所有实时计算告警规则
     */
    List<AlertRulesDO> getImmediateRules();

    /**
     * 获取所有定时计算告警规则
     */
    List<AlertRulesDO> getTimingRules();

    /**
     * 新增告警规则
     * @param alertRulesDO 告警规则表实体类
     */
    boolean insertAlertRule(AlertRulesDO alertRulesDO);

    /**
     * 告警规则分页查询
     * @param alertRulesPageQueryDTO 分页查询告警规则参数
     */
    PageResult pageAlertRules(AlertRulesPageQueryDTO alertRulesPageQueryDTO);

    /**
     * 告警规则删除
     * @param id 规则id
     */
    boolean deleteAlertRule(Long id);

    /**
     * 更新规则
     * @param alertRulesDO 告警规则表实体类
     */
    boolean updateAlertRule(AlertRulesDO alertRulesDO);

    /**
     * 查询告警详情
     * @param alertId 告警id
     * @return 告警详情返回VO
     */
    AlertRecordDetailsVO getAlertRecordDetails(int alertId);
}
